package com.wondertek.poms.dao.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.wondertek.poms.common.utils.validate.GroupType;
import lombok.Data;
import org.hibernate.validator.constraints.Range;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import javax.validation.groups.Default;
import java.io.Serializable;
import java.util.List;


@Data
public class PcProductPermissionBackVo implements Serializable {
    /**
     * <b>Fields</b> id : 主键ID
     */
    private Long id;

    /**
     * 权限树
     */
    private List<NodeVo> nodeVos;

    /**
     * <b>Fields</b> prdType : 类型 1用户 2用户组
     */
    @NotNull(message = "用户类型不能为空", groups = {Default.class})
    @Range(min = 1, max = 2, message = "用户类型的值只能为1或者是2")
    private Integer userType;

    /**
     * <b>Fields</b> ugid : 用户或群组ID
     */

    @Min(value = 0, message = "ugid只能是整数，且最小为0")
    @NotNull(message = "用户ugid不能为空", groups = {Default.class})
    private Long ugid;

//    @Min(value = 0, message = "userOrGroupId只能是整数，且最小为0")
//    @NotNull(message = "用户userOrGroupId不能为空", groups = {Default.class})
//    private Long userOrGroupId;

    /**
     * <b>Fields</b> ugname : 用户或群组名称
     */
    private String ugname;

    /**
     * <b>Fields</b> createdBy : 创建人
     */
    private String createdBy;

    /**
     * <b>Fields</b> createdTime : 创建时间 YYYY-MM-DD HH24:MI:SS
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private java.time.LocalDateTime createdTime;

    /**
     * <b>Fields</b> updatedBy : 更新人
     */
    private String updatedBy;

    /**
     * <b>Fields</b> updatedTime : 更新时间 YYYY-MM-DD HH24:MI:SS
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private java.time.LocalDateTime updatedTime;

    /**
     * <b>Fields</b> remakrs : 备注
     */
    private String remakrs;

    /**
     * <b>Fields</b> deleted : 是否删除 1是0否
     */
    private Integer deleted;
    /**
     * 1：新增操作
     * 2：编辑操作
     */
    private Integer type;
}
